﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//
using DLLTest.OpertionClass;

namespace DLLTest
{
    public partial class frm_Login : Form
    {
        //实例化数据操作对象
        DataCon datacon = new DataCon();
        DataOperate dataoperate = new DataOperate();
        ErrorProvider errorProName = new ErrorProvider();
        //
        public frm_Login()
        {
            InitializeComponent();
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void btnLogin_Click(object sender, EventArgs e)
        {
            if (txtName.Text == "")
            {
                /*SetError：该方法用来设置ErrorProvider控件的提示信息。
                 * DataSet：根据用户输入的登录用户名和密码在数据库中查找记录，并填充到DataSet数据集。
                 * Count：该属性用来获得DataSet数据集中所包含表的行数。
                 */
                errorProName.SetError(txtName, "用户名不能为空!");
            }
            else if(txtPwd.Text=="")
            {
                errorProName.Clear();
                errorProName.SetError(txtPwd,"密码不能为空");
            }
            else
            {
                errorProName.Clear();
                string strSql = "select * from tb_admin where name='" + txtName.Text + "'and pwd='" + txtPwd.Text + "'";
                DataSet ds = dataoperate.getDs(strSql, "tb_admin");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    this.Hide();
                    frm_Main frmmain = new frm_Main();
                    frmmain.Show();
                }
                else
                {
                    MessageBox.Show("用户名或密码错误！", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }               
            }
        }

        private void txtName_KeyPress(object sender, KeyPressEventArgs e)
        {
            /*当输入用户名或密码之后，还可以按Enter键将鼠标焦点移动到下一个控件上。
             * 实现原理是在输入用户名或密码的文本框的KeyPress事件下，
             * 判断是否按了Enter键，如果是，则将焦点移动到下一个控件上。
             * 按Enter键移动鼠标焦点的实现代码如下
             */
            if (e.KeyChar == 13)
            {
                txtPwd.Focus();
                e.Handled = true;
            }
        }

        private void txtPwd_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
            {
                btnLogin.Focus();
                e.Handled = true;
            }
        }

        private void frmLogin_Load(object sender, EventArgs e)
        {
            RegistryOperate reg = new RegistryOperate();
            reg.isRegedit();
        }
    }
}
